package com.magupe.netty.im.common.serializer;

import com.magupe.netty.im.common.serializer.impl.FastJsonSerializer;

/**
 * 序列化接口，如果自定义序列化工具的话，需要实现该接口
 * 
 * @author m1873
 * @since 2020-06-06
 */
public interface Serializer {

	// 默认序列化工具
	Serializer DEFAULT = new FastJsonSerializer();
	
    /**
     * 序列化算法
     */
    byte getSerializerAlogrithm();

    /**
     * 序列化方法， 对象转换成二进制
     */
    byte[] serialize(Object object);

    /**
     * 反序列化方法，二进制转换成对象
     */
    <T> T deserialize(Class<T> clazz, byte[] bytes);

}